package Test.stream流测试;

import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
import java.util.stream.Stream;

/**
 * @Author kirito
 * @Date 2023/12/13 19:01
 * @PackageName:Test.stream流测试
 * @ClassName: a
 * @Description:
 * @Version 1.0
 */
public class StreamDemo11 {
    public static void main(String[] args) {
        //Stream.iterate(initial value, next value)
        Stream.iterate(0, n -> n + 1)
                .limit(5)
                .forEach(x -> System.out.println(x));
//        peek接收的是一个Consumer函数，peek 操作会按照 Consumer 函数提供的逻辑去消费流中的每一个元素，
//        同时有可能改变元素内部的一些属性
        List<String> collect = Stream.of("one", "two", "three", "four")
                .filter(e -> e.length() > 3)
                .peek(e -> System.out.println("查看一下刚过滤出的值：" + e))
                .map(String::toUpperCase)
                .peek(e -> System.out.println("查看一下转大写之后的值：" + e))
                .collect(Collectors.toList());
        System.out.println("-----分割线-----");
        // 遍历过滤后的集合
        for (String s : collect) {
            System.out.println(s);
        }
    }
}


